var express = require('express');
var router = express.Router();
const bcrypt = require('bcrypt')
const { jwtSign } = require('../utils/jwt')
const models = require('../models')

//用户注册
var db = require('../mysql/db')
router.post('/sign', (req, res) => {
    const { username, password } = req.body
    if (username && password) {
        const hashPwd = bcrypt.hashSync(password, 10) // 使用bcrypt.hashSync方法生成密文密码
        userModel.create({
            username, password: hashPwd
        }, (err, data) => {
            if (err) {
                res.send({
                    code: '111112',
                    msg: '注册失败'
                })
            } else {
                res.send({
                    code: '000000',
                    msg: '注册成功'
                })
            }
        })
    } else {
        res.send({
            code: '111111',
            msg: '参数错误'
        })
    }
})
//用户登录
router.post('/login', async(req, res) => {
    const { username, password } = req.body
    // console.log(username,password)
    if (username && password) {
        // console.log("2222")
        const result = await models.user.findOne({
            where: {
                'username': username
            }
        })
        if(result !== null){
            //const isPwdValid = bcrypt.compareSync(password, results[0].password) // 使用bcrypt.compareSync方法验证密码
            const {dataValues} = result
            // console.log(dataValues)
            const isPwdValid = password === dataValues.password
            // console.log(isPwdValid)
            if (isPwdValid) {
                // console.log(dataValues.id)
                console.log(dataValues)
                const token = jwtSign({ id: dataValues.id }) // 用引入的jwtSign方法生成token并返回
                console.log(token)
                await models.user.update({ token : token }, {
                    where: {
                        'id': dataValues.id
                    }
                })
                res.send({
                    code: 200,
                    msg: '登录成功',
                    data: {
                        username,
                        password,
                        roles: dataValues.permission,
                        token
                    }
                })
            } else {
                res.send({
                    code: '111113',
                    msg: '密码错误'
                })
            }
        }else{
            res.send({
                code: '111112',
                msg: '不存在该账号'
            })
        }

        // let sql = "SELECT * FROM users WHERE username = '" + username + "'";
        // db.query(sql, [], results => {
        //     console.log(results[0].password,"999999999")
        //     // console.log(err,"22222222")
        //     if (!results[0].password) {
        //         res.send({
        //             code: '111112',
        //             msg: '登录失败'
        //         })
        //     } else {
        //         // const isPwdValid = bcrypt.compareSync(password, results[0].password) // 使用bcrypt.compareSync方法验证密码
        //         const isPwdValid = password === results[0].password
        //         console.log(isPwdValid)
        //         if (isPwdValid) {
        //             const token = jwtSign({ _id: results[0]._id }) // 用引入的jwtSign方法生成token并返回
        //             res.send({
        //                 code: '000000',
        //                 msg: '登录成功',
        //                 data: {
        //                     username,
        //                     password,
        //                     token
        //                 }
        //             })
        //         } else {
        //             res.send({
        //                 code: '111113',
        //                 msg: '密码错误'
        //             })
        //         }
        //     }
        // })
    } else {
        res.send({
            code: '111111',
            msg: '参数错误'
        })
    }
})

module.exports = router;